On occasion, it is useful to evaluate the functionality of one or more software modules. For instance, despite extraordinary efforts, complex software may sometimes not function as intended. In such cases, one may want to evaluate how the software performed leading up to the time that the software deviated from ideal function. In order to assist in this process, software modules under evaluation may generate event traces that represent a record of actions taken or experienced by the software module.
For instance, suppose that a service handles a number of service requests. Most of the time, the service may operate quite normally. On a rare occasion, the service may experience a problem in performance. Each time the service receives such a request, a number of modules of the service perform appropriate processing. While performing the processing, a number of service modules may generate a large number of trace events. Regardless of whether the service is operating normally or is experience a rare problem, the trace events are logged.
If the service performs normally most of the time, and just happed to fail on a rare occasion, the log will thus be filled with a large number of trace events, most of which being quite uninteresting since they only describe actions expected of a normally operating service. Thus, if the service does experience a problem, one evaluating the trace log might be overburdened with too much irrelevant information. The individual would have to scan through the trace events to first identify the trace events that are more relevant to the service failure. This might be quite a significant challenge for a service that functions properly the vast majority of the time.
Even if the service had not experience a failure, an evaluator of the service might be interested in a particular aspect of the service performance. Only a few of the trace events generated by the service might be relevant to that particular aspect of performance. The evaluator would still have to filter through the trace events to identify those trace events of interest.